Modern mobile devices may include a variety of applications that depend on an accurate estimate of device location, such as a map application or location-based services (LBS) application. An integrated Global Positioning System (GPS) receiver and onboard sensors (e.g., accelerometers, gyroscopes) can be used to determine location and orientation of the device, and even provide a rough estimate of heading.
Many GPS receivers use a recursive estimation algorithm (e.g., Kalman Filter) to provide a computationally efficient navigation solution. A linear form of the Kalman Filter, such as the Extended Kalman Filter (EKF), can be used if the system equations or measurement equations are non-linear. The EFK provides a good result if the state vector is chosen carefully. Even if the state vector is carefully chosen, the EFK can generate erratic estimates due to biased GNSS measurements (e.g. multipath signals), poor solution geometry (e.g. urban canyons), and low measurement redundancy (e.g. few satellites available).